<?php

namespace app\common\model\auth;

use tmcore\base\BaseModel;
use app\common\enum\YesNoEnum;
use tmcore\traits\ModelTrait;
use think\model\concern\SoftDelete;

/**
 * 管理员模型
 */
class Admin extends BaseModel
{
    use ModelTrait;
    use SoftDelete;

    protected $append = [
        'role_id'
    ];

    /**
     * 关联角色id
     * @param $value
     * @param $data
     * @return array
     */
    public function getRoleIdAttr($value, $data)
    {
        return AdminRole::where('admin_id', $data['id'])->column('role_id');
    }

    /**
     * 关联角色名称
     * @param $value
     * @param $data
     * @return string
     */
    public function getRoleNameAttr($value, $data)
    {
        $role_list = AdminRole::where('admin_id', $data['id'])->column('role_id');

        $name_arr = [];
        foreach ($role_list as $key => $value) {
            $name_arr[$key] = SystemRole::where(['id' => $value])->value('name');
        }
        return $name_arr;
    }

    /**
     * 获取禁用状态
     * @param $value
     * @param $data
     * @return string|string[]
     */
    public function getDisableDescAttr($value, $data)
    {
        return YesNoEnum::getDisableDesc($data['disable']);
    }

    /**
     * 获取部门名称
     * @param $value
     * @param $data
     * @return string|string[]
     */
    public function getDeptNameAttr($value, $data)
    {
        return $data['dept_id']?Dept::where(['id' => $data['dept_id']])->value('name'):'';
    }

    /**
     * 获取岗位名称
     * @param $value
     * @param $data
     * @return string|string[]
     */
    public function getJobsNameAttr($value, $data)
    {
        return $data['jobs_id']?Jobs::where(['id' => $data['jobs_id']])->value('name'):'';
    }

    /**
     * 最后登录时间获取器 - 格式化：年-月-日 时:分:秒
     * @param $value
     * @return string
     */
    public function getLoginTimeAttr($value)
    {
        return empty($value) ? '' : date('Y-m-d H:i:s', $value);
    }

}